<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index04</title>
</head>
<body>
  <script type="text/javascript">
    // 函数表达式
    // var fun = function(){
    //   console.log("我的函数表达式")
    // };
    // fun();
    // var fun2 = fun;
    // fun2();
    // (function(){
    //   console.log("自执行函数")
    // })();
    // console.log(g);
    // var g = 10;
    // console.log(g);
    // var g;
    // console.log(g);
    // g = undefined;
    // console.log(g)

    // var num = function(){
    //   console.log("哈哈哈")
    // }();
    // console.log(num);


    // 5!=5*4*3*2*1
    // 0!=1
    // 使用递归计算数的阶乘
    // function fact(n){
    //   // 递归有一个出口
    //   if (n == 1 || n == 0) {
    //     return 1;
    //   }
    //   return n * fact(n - 1);
    // }
    // var result = fact(5);
    // console.log(result);

    // 函数本身可以完成某些功能，也可以当值来传递
    // 回调函数callback,cb
    function fun(cb){
      // console.log(n)
      // cb();
      if (typeof(cb) === 'function') {
        cb();
      } else {
        console.log(cb)
      }
    }
    // fun(1);
    // var f = function(){
    //   console.log("我是一个函数")
    // };
    // fun(f);
    // fun(10);
    // fun(function(){
    //   console.log("我是匿名函数")
    // });
  </script>
</body>
</html>